- environment = local_assigns.fetch(:environment, nil)
- show_whitespace_toggle = local_assigns.fetch(:show_whitespace_toggle, true)
- can_create_note = !@diff_notes_disabled && can?(current_user, :create_note, diffs.project)
- diff_page_context = local_assigns.fetch(:diff_page_context, nil)
- load_diff_files_async = diff_page_context == "is-commit"
- paginate_diffs = local_assigns.fetch(:paginate_diffs, false)
- paginate_diffs_per_page = local_assigns.fetch(:paginate_diffs_per_page, nil)
- page = local_assigns.fetch(:page, nil)
- diff_files = conditionally_paginate_diff_files(diffs, paginate: paginate_diffs, page: page, per: paginate_diffs_per_page)

.js-diff-files-changed.gl-py-3
  .files-changed-inner
    .inline-parallel-buttons.gl-display-none.gl-md-display-flex.gl-relative
      - if !diffs_expanded? && diff_files.any?(&:collapsed?)
        = link_button_to _('Expand all'), url_for(safe_params.merge(expanded: 1, format: nil))
      - if show_whitespace_toggle
        - if current_controller?(:commit)
          = commit_diff_whitespace_link(diffs.project, @commit, class: 'd-none d-sm-inline-block')
        - elsif current_controller?(:compare)
          = diff_compare_whitespace_link(diffs.project, params[:from], params[:to], class: 'd-none d-sm-inline-block')
        - elsif current_controller?(:wikis)
          = toggle_whitespace_link(url_for(params_with_whitespace), class: 'd-none d-sm-inline-block')
      .btn-group.gl-ml-3
        = inline_diff_btn
        = parallel_diff_btn
    = render Diffs::StatsComponent.new(diff_files: diff_files)

- if render_overflow_warning?(diffs)
  = render Diffs::OverflowWarningComponent.new(diffs: diffs, diff_files: diff_files, project: @project, commit: @commit, merge_request: @merge_request)

.files{ data: { can_create_note: can_create_note } }
  - if load_diff_files_async
    - url = url_for(safe_params.merge(action: 'diff_files', page: page))
    .js-diffs-batch{ data: { diff_files_path: url } }
      = gl_loading_icon(size: "md", css_class: "gl-mt-4")
  - else
    = render partial: 'projects/diffs/file', collection: diff_files, as: :diff_file, locals: { project: diffs.project, environment: environment, diff_page_context: diff_page_context }

    - if paginate_diffs
      = paginate(diff_files, theme: "gitlab")
